(function ($) { Drupal.behaviors.limpiarCampoAlActivarUsuario = { attach: function (context, settings) { $('input[name="status"]', context) .once("limpiar-campo") .change(function () { if ($(this).val() == "1" && $(this).is(":checked")) { // Limpia el textarea $( 'textarea[name="field_usu_motivo_bloqueo[und][0][value]"]', context ).val(""); } }); }, }; })(jQuery); (function ($) { $(document).ready(function () { function toggleRequired() { var isBlocked = $('input[name="status"]:checked').val() == 0; var $textarea = $("#edit-field-usu-motivo-bloqueo-und-0-value"); var $label = $textarea.closest(".form-item").find("label"); var $error = $("#motivo-bloqueo-error"); // Eliminar asterisco previo si existe $label.find(".asterisk").remove(); if (isBlocked) { $textarea.attr("required", "required"); $label.append(' *'); if ($textarea.val().trim() === "") { $textarea.css("border", "2px solid red"); $error.text("El campo Motivo de bloqueo es obligatorio.").show(); } else { $textarea.css("border", ""); $error.hide(); } } else { $textarea.removeAttr("required"); $textarea.css("border", ""); $label.find(".asterisk").remove(); $error.hide(); } } var $textarea = $("#edit-field-usu-motivo-bloqueo-und-0-value"); // Crear div para mensaje de error si no existe if (!$("#motivo-bloqueo-error").length) { $textarea.after( '
' ); } var $error = $("#motivo-bloqueo-error"); // Validar al escribir $textarea.on("input", function () { if ($textarea.attr("required") && $textarea.val().trim() === "") { $textarea.css("border", "2px solid red"); $error.text("El campo Motivo de bloqueo es obligatorio.").show(); } else { $textarea.css("border", ""); $error.hide(); } // Limpiar cualquier mensaje de error de validación del navegador this.setCustomValidity(""); }); // Cancelar mensaje nativo del navegador $textarea.on("invalid", function (e) { e.preventDefault(); $error.text("El campo Motivo de bloqueo es obligatorio.").show(); this.setCustomValidity(""); }); toggleRequired(); $('input[name="status"]').change(toggleRequired); }); })(jQuery);